//+------------------------------------------------------------------+
//|                        FileTxt.mqh 文本文件操作类头文件          |
//|                版权所有 2000-2025, MetaQuotes Ltd.              |
//|                        官方网址: https://www.mql5.com            |
//+------------------------------------------------------------------+
#include "File.h"  // 引入通用文件操作基类 CFile 的声明

//+------------------------------------------------------------------+
//| CFileTxt 类                                                      |
//| 功能：MT5 文本文件专用操作类，封装文本文件的读写接口             |
//| 继承关系：public CFile（基于通用文件类扩展文本处理能力）          |
//| 核心特性：                                                      |
//|  1. 自动以文本模式打开文件，无需额外指定 FILE_TXT 标志           |
//|  2. 支持字符串的直接读写，自动处理文本编码（ANSI/Unicode）        |
//+------------------------------------------------------------------+
class CFileTxt : public CFile
  {
public:
   /**
    * @brief 构造函数：初始化文本文件操作实例
    * @details 调用父类 CFile 构造函数，默认编码为 ANSI，未绑定文件
    */
                     CFileTxt(void);

   /**
    * @brief 析构函数：销毁文本文件操作实例
    * @details 自动调用父类 Close 方法，关闭已打开的文本文件并释放资源
    */
                    ~CFileTxt(void);

   //--- 文本文件打开接口
   /**
    * @brief 以文本模式打开文件（自动添加 FILE_TXT 标志）
    * @param file_name [in] 文件路径/名称（如 "C:\\data.txt" 或 "logs\\report.txt"）
    * @param open_flags [in] 打开模式标志（如 FILE_READ 只读、FILE_WRITE 写入、FILE_APPEND 追加，无需包含 FILE_TXT）
    * @return int - 操作结果：成功返回文件句柄（>0），失败返回 INVALID_HANDLE（-1）
    * @note 若已打开其他文件，会先自动关闭旧文件
    */
   int               Open(const string file_name,const int open_flags);

   //--- 文本写入接口
   /**
    * @brief 向文本文件写入字符串
    * @param value [in] 要写入的字符串（支持换行符等转义字符，编码由 SetUnicode 控制）
    * @return uint - 实际写入的字节数：成功返回字符串字节数，失败返回 0
    * @note 需先调用 Open 成功打开文件，写入后不会自动添加换行符
    */
   uint              WriteString(const string value);

   //--- 文本读取接口
   /**
    * @brief 从文本文件读取字符串（直到换行符或文件结束）
    * @return string - 读取结果：成功返回读取的字符串（不含换行符），失败返回空字符串
    * @note 需先调用 Open 以只读模式打开文件，每次调用读取一行文本
    */
   string            ReadString(void);
  };
//+------------------------------------------------------------------+
